package join;

public class ThreadJoinDemo {

    public static void main(String[] args) {
        System.out.println("开始做午饭了...");
        ////////这个时候，发现没有酱油了，没有辣椒了。
        //兵分两路，派出两个线程，一个负责买辣子，一个负责买辣椒。

        Runnable bigSon = () -> {
            for (int i = 0; i < 10; i++) {
                System.out.println("大儿子买酱油中...");
                try {
                    Thread.sleep(100); // 当前线程处于休眠状态。
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };


        Runnable smallSon = () -> {
            for (int i = 0; i < 10; i++) {
                System.out.println("小儿子买辣椒中...");
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };

        Thread bigSonTh = new Thread(bigSon, "大儿子线程");
        Thread smallSonTh = new Thread(smallSon, "小儿子线程");

        bigSonTh.start();
        smallSonTh.start();

        try {
            //妈妈线程中调用了join方法，分别等待两个儿子线程结束
            bigSonTh.join();
            smallSonTh.join();

        } catch (Exception ex) {
            ex.printStackTrace();
        }

        System.out.println("酱油和辣椒都买回来了，继续做饭...");
        System.out.println("香喷喷的午饭做好了，请享用！");
    }
}
